This is probably caused by the changes for JDBC350. Could you add a reproduction example (stored procedure + java code), so I can easily track it down and fix it?
Note that from a strict interpretation of JDBC, for an executable stored procedures you shouldn't use the ResultSet, but the getters on the CallableStatement instead. For Jaybird 2.2.x this should continue to work as it did in 2.2.5 and earlier, but there is no guarantee that this compatibility will be maintained in future Jaybird releases.
In JDBC350 I created a 'copy' of the result set for use with the getters of the CallableStatement, however creating such a copy will result in cached blobs (where the blob data is already loaded), however in this case the cached data is actually the blob id, and not the blob data.