How can I change Niagara variables via blueprint?

By ENiagaraState, do you mean an Emitter.VariableName? If so the same method should work, just make sure your niagara system is using User.VariableName created in the system where you need to. Only User variables can be changed. But you could workaround that by setting Emitter.VariableName to User.VariableName where needs be in the system.