private void checkMapVersion(OpenMode openMode, T tokenInstance, TaskMonitor monitor)
			throws VersionException, CancelledException, IOException {
		if (propertyTable == null) {
			return;
		}
		int schemaVersion = schema.getVersion();
		if (schemaVersion > saveableObjectVersion) {
			// A newer version was used to create the database
			Msg.warn(this,
				"Program properties utilize a newer version of: " + saveableObjectClass.getName() +
					"(" + schemaVersion + ", " + saveableObjectVersion + ")");
			throw new VersionException(VersionException.NEWER_VERSION, false);
		}
		else if (addrMap.isUpgraded() || schemaVersion < saveableObjectVersion) {
			// An older version was used to create the database
			if (openMode != OpenMode.UPGRADE) {
				throw new VersionException(true);
			}
			if (!upgradeTable(tokenInstance, monitor)) {
				Msg.showError(this, null, "Properties Removed on Upgrade",
					"Warning! unable to upgrade properties for " + saveableObjectClass.getName() +
						"\nThese properties have been removed.");
			}
		}
	}
Verify that the storage schema has not changed.
@param openMode open mode
@param tokenInstance token saveable instance
@param monitor task monitor
@throws VersionException if saveable schema version error occurs
@throws CancelledException if task is cancelled
@throws IOException if IO error occurs
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/ObjectPropertyMapDB.java