Well, that's basically the same thing with any nullable return then. Wether I return T or Optional<T>, there might be no record.
Even worse, when I return T, you only have 2 cases : I return something, or I return null.
With optional, you have 3 cases to check : I returned Something, I returned Optional.of(null), or I returned null.