Como outros já disseram:o driver mapeia tudo para BigDecimal, mesmo que seja definido como NUMBER(38) (que pode ser mapeado para BigInteger)
Mas é muito fácil descobrir o que o driver mapeia. Basta fazer um getObject() na coluna do ResultSet e ver qual classe o driver gerou.
Algo como:
ResultSet rs = statement.executeQuery("select the_number_column from the_table");
if (rs.next())
{
Object o = rs.getObject(1);
System.out.println("Class: " + o.getClass().getName());
}