Por si a alguien le sirve lo solucione asi
CallableStatement cstmt = con.prepareCall("{call proc_ndi @ndi=?}");
cstmt.setString(1, cod);
boolean results = cstmt.execute();
int rowsAffected = 0;
while (results || rowsAffected != -1) {
if (results) {
res = cstmt.getResultSet();
break;
} else {
rowsAffected = cstmt.getUpdateCount();
}
results = cstmt.getMoreResults();
}
Luego hice un while comun y silvestre para recuperar las filas