Gary:
the short answer is that a Workspace is this special world

Now, I didn't go as far into your code to pretend I know but if you walk yourself into ifDefinedDo: and I mean live in a debugger in your Workspace code (just highlight and do "debug it" ) I think you will find that <obj> has a binding and that binding is housed in the context of the Workspace i.e. if I recall the lookup tries to ascertain whether the "named class" exists within a known context i.e. usually a Namespace but in the case of code evaluated in a Workspace the "Workspace" it self becomes a context and any var that has been assigned a value but not explicitly specified as a local var i.e. | myVar | type of thing will become forever bound in the context of that Workspace and of course within the lifespan of the image.
but have some fun and dive into the catacombs of ifDefinedDo: , btw, I highly suggest to go for walks with your debugger i.e. some deep walks, it is your best friend.
also let me know when you want to start talking about using the native Postgres driver functionality.