Minor: Using `setDelegateCatalog` requires extending `CatalogExtension`. In Java, I normally try to avoid forcing users to extend a superclass because a class can only have one parent. Instead, I would add `CatalogExtension` as an interface and also create an abstract class, `DelegatingCatalogExtension` that implements the interface.