List<AddressRange> getRangesForRecord(DBRecord record) {
		List<AddressRange> ranges = new ArrayList<>(2);
		if (record == null) {
			return ranges;
		}
		Address start = addressMap.decodeAddress(record.getKey());
		Address end = addressMap.decodeAddress(record.getLongValue(TO_COL));
		if (start.compareTo(end) <= 0) {
			ranges.add(new AddressRangeImpl(start, end));
		}
		else {
			// the key range spans the address boundary because of non zero image base
			// so this record represents two address ranges, one at the start and one at the end
			AddressSpace space = start.getAddressSpace();
			ranges.add(new AddressRangeImpl(space.getMinAddress(), end));
			ranges.add(new AddressRangeImpl(start, space.getMaxAddress()));
		}

		return ranges;
	}
Returns a list of AddressRanges that this record represents. This record's key is the 
encoded start key and it "TO_COL" has the end address key. But since a non-zero image base
can cause that key range to be backwards in address space which means it represents a range
that starts in the upper addresses and then "wraps" to a lower address, resulting in two
address ranges, one and the bottom of the address space and one at the top of the address
space.
@param record a record that represents a contiguous range (in key space) of same values 
@return a list of AddressRanges that this record represents.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapDB.java