This block doesn't belong in core - it's a violation of the [open-closed principle](http://en.wikipedia.org/wiki/Open/closed_principle) (yes I know that it was broken before, but if we change it we should fix it). If a new database driver needs to be added, core needs to be changed, which is coupling I don't want to really have...

I'd prefer an implementation where `initDefaultEnvironments` uses reflection to find implementations of `DBEnvironment` on the classpath, and that the JDBC driver class remains in the database-specific `DBEnvironment`.

What do you think?