I'm not sure we really need to catch `DatabaseError` and re-raise it. Did you see a similar example elsewhere? If we do, we should at least avoid a second call to `get_version()`.