Think about it again.
1. YAGNI - You ain't gonna need it.
Do you really need to wrap the function? How often and in how many places do you resolve a root node - and most importantly - do you expect to add additional behaviour to this method later on?
2. Does it really improve readability?
This is highly subjective. In my eyes, both variants are almost equal in readability. I'd even prefer the first one if I don't really need the wrapper because I don't want to add behaviour later on, as it's easier to debug, one less level to step through.
3. Performance
This is a minor concern here. I doubt you call that method very often. When you call it in a loop, it could have a severe impact on performance. The overhead itself is negligible for single function calls.
4. Design Decision
Do you want to hide the graphDB Member completely, i.e. behind an interface? Then by all means create a whole abstraction of it with all the methods necessary.
That said, the increased readability is highly subjective (in your eyes only) while adding a new layer that could potentially lead to a performance loss. That's fine if you need that wrapper because you expect to add additional behaviour later on and your code is sprinkled wich calls of getReferenceNode()
. If you just have a single call or very few calls of getReferenceNode and you don't plan to add additional behaviour later, then I'd not create that wrapper.