@Override
	public synchronized void read(DBHandle dbh) throws IOException {

		readIdRecords(dbh, DATATYPE_ADDITIONS, addedDataTypeIds);
		readIdRecords(dbh, DATATYPE_CHANGES, changedDataTypeIds);
		readIdRecords(dbh, CATEGORY_ADDITIONS, addedCategoryIds);
		readIdRecords(dbh, CATEGORY_CHANGES, changedCategoryIds);
		readIdRecords(dbh, PROGRAM_TREE_ADDITIONS, addedProgramTreeIds);
		readIdRecords(dbh, PROGRAM_TREE_CHANGES, changedProgramTreeIds);
		readIdRecords(dbh, SYMBOL_ADDITIONS, addedSymbolIds);
		readIdRecords(dbh, SYMBOL_CHANGES, changedSymbolIds);
		readIdRecords(dbh, SOURCE_ARCHIVE_ADDITIONS, addedSourceArchiveIds);
		readIdRecords(dbh, SOURCE_ARCHIVE_CHANGES, changedSourceArchiveIds);
		readIdRecords(dbh, FUNCTION_TAG_ADDITIONS, addedTagIds);
		readIdRecords(dbh, FUNCTION_TAG_CHANGES, changedTagIds);

		// we want to read address change records directly into the "since checkout" set.
		readAddressRangeRecords(dbh, ADDRESS_CHANGES, changedAddrsSinceCheckout);
		readAddressRangeRecords(dbh, REGISTER_ADDRESS_CHANGES, changedRegAddrsSinceCheckout);

		clearUndo();
	}
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