I already made the change to make it more DRY.

As to the other point:

It's wrong to return null. The client's cursor isn't invalidated just because the server changes the number of streams/topics/sql tables. As for a default value of null I'm ok with that.