Wilson, boa tarde.
Já tentou debugar e ver se realmente o saldo está retornado algum valor? Pois pelo que da pra ver, da de entender que o seu problema está na linha,
BigDecimal saldo = resultSet.getBigDecimal(2);
Se os dados na coluna especificada estiverem no formato errado, o método getBigDecimal não conseguirá converter corretamente o valor para um BigDecimal, resultando em zero. Por exemplo, se a coluna contiver valores de texto que não podem ser convertidos em números válidos, isso pode causar o problema.
As vezes você irá precisar olhar qual é o tipo da variavel que está no seu banco de dados e quando você for chamar a linha terá que pegar e converter para bigDecimal,
Exemplo:
BigDecimal saldo = new BigDecimal(resultSet.E AQUI VOCÊ COLOCA O TIPO CORRETO);