This problem arises on SQL SELECT from grid table and on results page transfer over network.
First, when data is SELECT ed, org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.RowDescriptor#wrap does not look at array's component type and tries to convert any array to Object which turns to ClassCastException when array is of primitive type and erases metadata about its contents when its type is not primitive.
Then, when results page is transferred over network, array is wrapped into org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2Array which does not have any metadata too, so, even if we had returned primitive array from native H2's local SELECT, information about its primitiveness would be lost anyway, and it would be converted to, say, java.lang.Byte after all.
So, currently there's no way to SELECT a primitive array field via SQL.
Probably this could be fixed by changing GridH2Array, but this would break backward compatibility, so it's an open question for now.