public Field getValue(Address address) {
		if (isEmpty()) {
			return null;
		}
		// check last cached range
		Pair<AddressRange, Field> localValue = lastValue;
		if (localValue != null && localValue.first.contains(address)) {
			return localValue.second;
		}
		lock.acquire();
		try {
			if (rangeMapTable == null) {
				return null;
			}
			DBRecord record = findRecordContaining(address);
			List<AddressRange> ranges = getRangesForRecord(record);
			for (AddressRange range : ranges) {
				if (range.contains(address)) {
					Field fieldValue = record.getFieldValue(VALUE_COL);
					lastValue = new Pair<AddressRange, Field>(range, fieldValue);
					return fieldValue;
				}
			}
		}
		catch (IOException e) {
			errHandler.dbError(e);
		}
		finally {
			lock.release();
		}
		return null;
	}
Returns the value associated with the given address
@param address the address of the value
@return value or null no value exists
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java