If you don't want to directly use a model to fetch information you can tell the query builder to use the model class before executing it, like so:
This returns an array of User model objects.
Another cool thing is callbacks, if you want to process the data within the query chain, you can do so:
This will most likely be primarily used by the model system but can be used by the query builder.
What it does it after executing the query and before returning the result, the database class runs the data through the callback function which does whatever is needed then returns the processed data back to the database class.