Can't locate object method "create_query" via package "My::NEW::Module" at ../lib/My/NEW/Module.pm line 46.
My::NEW::Module::get_unpublished('My::NEW::Module', 'My::OLD::Module::Connect=HASH(0x45dcd98)', 10, 250) called at module_test.t line 44
So a function that takes (and has been called with) three parameters is actually (somehow) winding up with four instead.
Sounds like you accidentally wrote My::NEW::Module->get_unpublished(...) when you meant My::NEW::Module::get_unpublished(...)?
Otherwise, try reducing the code down to the bare minimum needed to reproduce the problem, so you can post it here - see Short, Self-Contained, Correct Example.