Means that the caller gets to choose the type of Generic, and that your code has to be able to return whatever the caller chose.
As you pointed out, you always return something involving PostgresConnectionManager, and not something the caller chose.
You could fix the current error by replacing the generic with the one actual type you actually do return with the current snippet...
...but it looks like you're going to want to return a different DB depending on the DBType; i.e. the value of DBType should determine the type of DB. There's no way to do this without erasing the type in some way.