public <T extends DBAnnotatedObject> DBCachedObjectStore<T> getOrCreateCachedStore(
			String tableName, Class<T> cls, DBAnnotatedObjectFactory<T> factory, boolean upgradable)
			throws VersionException, IOException {
		Table table = getOrCreateTable(tableName, cls, upgradable);
		return new DBCachedObjectStore<>(adapter, cls, factory, table);
	}
Get or create a cached store of objects of the given class

@param <T> the type of objects in the store
@param tableName the table name
@param cls the class describing {@link T}
@param factory the object's constructor, usually a method reference or lambda
@param upgradable true if {@link VersionException}s should be marked upgradable when an
           existing table's version is earlier than expected
@return the table
@throws IOException if there's an issue accessing the database
@throws VersionException if an existing table's version does not match that expected
Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/DBCachedObjectStoreFactory.java