public AddressRange getAddressRangeContaining(Address address) {
		// check cache
		Pair<AddressRange, Field> localValue = lastValue;
		if (localValue != null && localValue.first.contains(address)) {
			return localValue.first;
		}
		lock.acquire();
		try {
			// look for a stored value range that contains that address
			AddressRange range = findValueRangeContainingAddress(address);
			if (range == null) {
				// so the address doesn't have a value, find its containing gap range
				range = findGapRange(address);
			}
			return range;
		}
		catch (IOException e) {
			dbError(e);
			return null;
		}
		finally {
			lock.release();
		}
	}
Returns the bounding address range for the given address where all addresses in that
range have the same value (this also works for now value. i.e finding a gap)
@param address the address to find a range for
@return an address range that contains the given address and has all the same value
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java