private void readAddressRangeRecords(DBHandle dbh, String tableName, NormalizedAddressSet set)
			throws IOException {
		Table table = dbh.getTable(tableName);
		if (table != null) {
			if (table.getSchema().getVersion() != 0) {
				throw new IOException("Change data produced with newer version of Ghidra");
			}
			RecordIterator it = table.iterator();
			while (it.hasNext()) {
				DBRecord rec = it.next();
				Address addr1 = addrMap.decodeAddress(rec.getLongValue(0));
				Address addr2 = addrMap.decodeAddress(rec.getLongValue(1));
				// Memory addresses or external addresses are the only ones that should be in here.
				if (addr1.isMemoryAddress() || addr1.isExternalAddress()) {
					set.addRange(addr1, addr2);
				}
			}
		}
	}
Construct a new ProgramChangeSet.
@param addrMap the address map.
@param numUndos the number of undo change sets to track.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDBChangeSet.java