I tried DBXTalk today on Pharo 3 and got the NBPharoOpenDBX class error too.
This is my understanding of what causes the error.
The value returned by OpenDBX class>>#current is initialized in ConfigurationOfOpenDBXDriver>>#setNBOpenDBX.
#setNBOpenDBX has one line:
(Smalltalk at: #OpenDBX) current: (Smalltalk at: #NBPharoOpenDBX).
This sets OpenDBX Current to an NBPharoOpenDBX class instead of an NBPharoOpenDBX instance.
Changing the statement to:
(Smalltalk at: #NBPharoOpenDBX) installAsCurrent
indirectly sets OpenDBX Current to an instance of NBPharoOpenDBX so that
OpenDBX class>>#current will correctly return an instance of NBPharoOpenDBX.
Using OpenDBX class>>#installAsCurrent is needed because the OpenDBX class has
two class variables: CurrentLibraryFactory and Current.
CurrentLibraryFactory stores a class and Current stores an instance of that class.
The only way to set CurrentLibraryFactory is with the OpenDBX class>>#installAsCurrent method.
Using OpenDBX class>>#current: to set the instance directly can leave the CurrentLibraryFactory and Current variables out of sync.