Modified Fibonacci Implementation
Generally looks good. Except

    final BigInteger squaredTerm = new BigDecimal(Math.pow(currentTerm.doubleValue(), 2)).toBigInteger();


There is absolutely no reason to cast Math in. The computations are supposed to be exact, which Math is notoriously lacking. I recommend

    final BigInteger squaredTerm = currentTerm.multiply(currentTerm);