A standard DB result is returned the way the driver returns it, which is an immutable result.
Fuel's architecture encodes on output, instead of filter and strip on input. If you attempt to send a raw database result directly to a view, the View object will want to encode is, which is not possible since they are immutable. This is causing the exception.
To prevent it, either use as_array() or as_object() when you run your DB query, or pass the result to the View object using the set_safe() method (http://docs.fuelphp.com/classes/view.html#/method_set_safe) which will disable encoding.
You should only use that last option if you are ABSOLUTELY sure the information in the database is secure. If it came from user input, it isn't, so using this will open you up for attack. Instead, use as_array() or as_object() on your DB::select().