We want to make the Database class stateless so that we do not need to version the Database class like the Collection class.
The initial idea is that CollectionCatalog will hold a new map of database name to profile level. Geert suggested only adding entries to the map if a non-default setting is set. We already do map lookups to fetch the Database instance, so doing a map lookup in CollectionCatalog instead of fetching the Database for the profile level shouldn't make a difference. It would be nice to do away with the map lookup every Collection read must do to fetch the profiling level, if some reasonable means can be thought up.
No need to version the profile level, per the project design.